module MOVREG(icode_in, ifun_in, rA_in, rB_in, valC_in, valP_in, valA_in, valB_in, valE_in, valM_in, Bch_in, icode_out, ifun_out, rA_out, rB_out, valC_out, valP_out, valA_out, valB_out, valE_out, valM_out, Bch_out, enable, reset);

input [3:0] icode_in;
input [3:0] ifun_in;
input [3:0] rA_in;
input [3:0] rB_in;
input [31:0] valC_in;
input [31:0] valP_in;
input [31:0] valA_in;
input [31:0] valB_in;
input [31:0] valE_in;
input [31:0] valM_in;
input Bch_in;
input enable;
input reset;

output [3:0] icode_out;
output [3:0] ifun_out;
output [3:0] rA_out;
output [3:0] rB_out;
output [31:0] valC_out;
output [31:0] valP_out;
output [31:0] valA_out;
output [31:0] valB_out;
output [31:0] valE_out;
output [31:0] valM_out;
output Bch_out;

reg [3:0] icode_out;
reg [3:0] ifun_out;
reg [3:0] rA_out;
reg [3:0] rB_out;
reg [31:0] valC_out;
reg [31:0] valP_out;
reg [31:0] valA_out;
reg [31:0] valB_out;
reg [31:0] valE_out;
reg [31:0] valM_out;
reg Bch_out;

always @ (posedge enable or negedge reset) begin
  if(!reset) begin
      icode_out = 0;
      ifun_out = 0;
      rA_out = 0;
      rB_out = 0;
      valC_out = 0;
      valP_out = 0;
      valA_out = 0;
      valB_out = 0;
      valE_out = 0;
      valM_out = 0;
      Bch_out = 0;
   end else begin
  
      icode_out = icode_in;
      ifun_out = ifun_in;
      rA_out = rA_in;
      rB_out = rB_in;
      valC_out = valC_in;
      valP_out = valP_in;
      valA_out = valA_in;
      valB_out = valB_in;
      valE_out = valE_in;
      valM_out = valM_in;
      Bch_out = Bch_in;
  
   end
end

endmodule
